#ifndef SPRI_CONSTANTS_H
#define SPRI_CONSTANTS_H

#include <foun/primitives.h>

namespace lct
{
namespace spri
{

const u32 MAX_NAME_SIZE = 32;

const u32 TEXTURE_UNIT_INDEX = 0;

enum TargetType
{
	TARGET_TYPE_PART = 0,
	TARGET_TYPE_JOINT,
	TARGET_TYPE_PATTERN
};

enum PartPropertyType
{
	PART_PROPERTY_TYPE_MODULATE_COLOR_R = 0,
	PART_PROPERTY_TYPE_MODULATE_COLOR_G,
	PART_PROPERTY_TYPE_MODULATE_COLOR_B,
	PART_PROPERTY_TYPE_MODULATE_COLOR_A,
	PART_PROPERTY_TYPE_INTERPOLATE_COLOR_R,
	PART_PROPERTY_TYPE_INTERPOLATE_COLOR_G,
	PART_PROPERTY_TYPE_INTERPOLATE_COLOR_B,
	PART_PROPERTY_TYPE_INTERPOLATE_COLOR_A,
	PART_PROPERTY_TYPE_COUNT
};

enum JointPropertyType
{
	JOINT_PROPERTY_TYPE_SCALE_X = 0,
	JOINT_PROPERTY_TYPE_SCALE_Y,
	JOINT_PROPERTY_TYPE_ROTATE,
	JOINT_PROPERTY_TYPE_TRANSLATE_X,
	JOINT_PROPERTY_TYPE_TRANSLATE_Y,
	JOINT_PROPERTY_TYPE_COUNT
};

enum JointFlagType
{
	JOINT_FLAG_TYPE_SCALE_CHILDREN = 0,
	JOINT_FLAG_TYPE_COUNT
};

enum PatternPropertyType
{
	PATTERN_PROPERTY_TYPE_TEXTURE_INDEX = 0,
	PATTERN_PROPERTY_TYPE_COUNT
};

enum CurveType
{
	CURVE_TYPE_FLAT = 0,
	CURVE_TYPE_LINEAR,
	CURVE_TYPE_HERMITE
};

enum FinishType
{
	FINISH_TYPE_HOLD = 0,
	FINISH_TYPE_LOOP
};

//namespace spri
}
//namespace lct
}

#endif//SPRI_CONSTANTS_H
